<?php

class questionario implements ArrayAccess {
	var $pkid = "";
	var $codice = "";
	var $ts_ins = "";
	var $eta = "";
	var $genere = "";
	var $figli = "";
	var $stato = "";
	var $anni_professione = "";
	var $anni_ua = "";
	var $titolo = "";
	var $area = "";

	var $ore_giorno = "";
	var $ore_settimana = "";
	var $giorni_settimana = "";
	var $finesettimana_mese = "";
	var $chiamata = "";
	var $tredici_ore = "";
	var $intervallo_turno = "";
	var $lavoro_riposo_ferie = "";
	var $lavoro_malato = "";

	var $velocita_lavoro = "";
	var $impegno_mentale = "";
	var $lavoro_eccessivo = "";
	var $tempo_insufficiente = "";
	var $richieste_contrastanti = "";
	var $concentrazione = "";
	var $compiti_interrotti = "";
	var $lavoro_frenetico = "";
	var $attesa_lavoro_altrui = "";

	var $intenso_sforzo_fisico = "";
	var $attivita_rapida_costante = "";
	var $carichi_pesanti = "";
	var $posizioni_scomode_testa_braccia = "";
	var $posizioni_scomode_corpo = "";

	var $sollevare_da_piano = "";
	var $sollevare_da_spalle = "";
	var $posizione_non_eretta = "";
	var $oggetti_pesanti = "";
	var $posizione_statica = "";
	var $movimenti_ripetitivi_mani = "";
	var $pressione_mani = "";

	var $relazioni_medici_infermieri = "";
	var $condizioni_opinioni = "";
	var $tempo_suporto_pazienti = "";
	var $controllo_spesa = "";
	var $partecipazione_acquisto = "";

	var $capo_considerazioni = "";
	var $capo_sopprime_giudizi = "";
	var $capo_gentilezza = "";
	var $capo_interesse = "";
	var $capo_bene = "";
	var $colleghi_disponibili = "";
	var $colleghi_aiuto = "";

	var $procedure_valide = "";
	var $procedure_assenza_errori = "";
	var $personale_liberta_espressione = "";
	var $sicurezza_costi = "";
	var $sicurezza_lavoro = "";
	var $sicurezza_decisioni_qualificati = "";
	
	var $soddisfazione="";

	private $labels =  array(
		'pkid' => 'Progressivo',
		'codice' => 'Codice',
		'ts_ins' => 'ts_ins',
		'eta' => 'Età',
		'genere' => '',
		'figli' => 'Figli',
		'stato' => 'Stato civile',
		'anni_professione' => 'Anni professione',
		'anni_ua' => 'Anni nell\'attuale unità operativa',
		'titolo' => 'Titolo',
		'area' => 'Area',
		'ore_giorno' => 'Ore di lavoro al giorno',
		'ore_settimana' => 'Ore di lavoro a settimana',
	    'giorni_settimana' => 'Giorni di lavoro a settimana',
		'finesettimana_mese' => 'Fine settimana di lavoro al mese',
		'chiamata' => 'E` richiesta la disponibilità su chiamata',
		'tredici_ore' => 'Mi capita di lavorare fino a 13 ore',
		'intervallo_turno' => 'Intercorrono < di 10 ore tra un turno all’altro',
		'lavoro_riposo_ferie' => 'Mi capita di lavorare nei giorni di riposo programmati/nei giorni di ferie',
		'lavoro_malato' => 'Mi capita di lavorare quando sono malato/a',
		'velocita_lavoro' => 'Il mio lavoro richiede di fare le cose molto velocemente',
		'impegno_mentale' => 'Il mio lavoro mi impegna molto al livello mentale',
		'lavoro_eccessivo' => 'Mi è richiesto un lavoro eccessivo',
		'tempo_insufficiente' => 'Non ho tempo sufficiente per fare il mio lavoro',
		'richieste_contrastanti' => 'Durante il lavoro sono sottoposto a richieste tra loro contrastanti',
		'concentrazione' => 'II mio lavoro richiede lunghi periodi d\'intensa concentrazione sull\'attività da svolgere',
		'compiti_interrotti' => 'I miei compiti vengono spesso interrotti prima di essere completati, e devo riprenderli successivamente',
		'lavoro_frenetico' => 'II mio lavoro è frenetico',
		'attesa_lavoro_altrui' => 'Il dover aspettare il lavoro svolto da altre persone o da altri reparti, spesso rallenta la mia attività',
		'intenso_sforzo_fisico' => 'Il mio lavoro richiede un intenso sforzo fisico',
		'attivita_rapida_costante' => 'Il mio lavoro richiede un’ attività fisica rapida e costante',
		'carichi_pesanti' => 'Nello svolgimento del mio lavoro spesso devo spostare o sollevare carichi molto pesanti',
		'posizioni_scomode_testa_braccia' => 'Sul mio lavoro spesso mi e\' richiesto di lavorare per lunghi periodi con la testa e le braccia in posizioni scomode',
		'posizioni_scomode_corpo' => 'Sul mio lavoro spesso mi è richiesto di lavorare per lunghi periodi con il corpo in posizioni scomode',
		'sollevare_da_piano' => 'Sollevare o abbassare pazienti/oggetti da piano di appoggio',
		'sollevare_da_spalle' => 'Sollevare o abbassare oggetti dall’altezza delle spalle',
		'posizione_non_eretta' => 'Lavorare in posizione non eretta (piegati, con il tronco ruotato…)',
		'oggetti_pesanti' => 'Spingere o tirare oggetti pesanti o persone',
		'posizione_statica' => 'Rimanere fermo in un posto/in posizione statica per più di 30 minuti',
		'movimenti_ripetitivi_mani' => 'Eseguire movimenti ripetitivi con mani/polsi',
		'pressione_mani' => 'Fare pressioni con le mani/dita (es. per prevenire emorragie…)',
		'relazioni_medici_infermieri' => 'Medici e infermieri hanno buone relazioni di lavoro tra di loro',
		'condizioni_opinioni' => 'Non sono messo nelle condizioni di dover fare cose che sono contro le mie opinioni e convinzioni',
		'tempo_suporto_pazienti' => 'Ho servizi di supporto adeguati che mi permettono di trascorrere più tempo con i pazienti',
		'controllo_spesa' => 'Gli infermieri partecipano attivamente agli sforzi per il controllo della spesa sanitaria',
		'partecipazione_acquisto' => 'Il personale infermieristico partecipa alle scelte per l\'acquisto di nuovi presidi, nuovo materiale sanitario, nuove apparecchiature',
		'capo_considerazioni' => 'Il mio coordinatore infermieristico considera il mio punto di vista',
		'capo_sopprime_giudizi' => 'Il mio coordinatore infermieristico sopprime i pregiudizi personali',
		'capo_gentilezza' => 'Il mio coordinatore infermieristico mi tratta con gentilezza',
		'capo_interesse' => 'Il mio coordinatore infermieristico si occupa di me sinceramente',
	    'capo_bene' => 'Io voglio bene al mio coordinatore infermieristico',
		'colleghi_disponibili' => 'I miei colleghi di lavoro sono disponibili quando ho bisogno di aiuto',
		'colleghi_aiuto' => 'I miei colleghi sono un aiuto utile per ottenere un lavoro ben fatto',
		'procedure_valide' => 'Le procedure e sistemi presenti nella mia UO sono utili per la prevenzione del verificarsi di errori',
		'procedure_assenza_errori' => 'Nella mia realtà lavorativa non è solo un caso che non si verifichino errori',
		'personale_liberta_espressione' => 'Il personale è libero di parlare se vede qualcosa che potrebbe influenzare negativamente l\'assistenza del paziente',
		'sicurezza_costi' => 'Nella mia realtà l\'organizzazione mi sembra orientata a migliorare la sicurezza piuttosto che a ridurre i costi',
		'sicurezza_lavoro' => 'La sicurezza del paziente non viene sacrificata per fare più lavoro',
		'sicurezza_decisioni_qualificati' => 'Le decisioni in materia di sicurezza sono prese al livello giusto fra le persone più qualificate',
		'soddisfazione'  => 'Sono soddisfatto del mio ambiente di lavoro'	
	);



		// rex
		private $validate =  array(
		'codice' => '\w{10,12}',
		'eta' => '\d{1,2}',
		'stato' => '0|1|2|3|4',
		'genere' => 'M|F',
		'figli' => '0|1',
		'anni_professione' => '\d{1,2}',
		'anni_ua' => '\d{1,2}',
		'titolo' => '0|1|2|3|4|5|6',
		'area' => '0|1',
		'ore_giorno' => '0|1|2',
		'ore_settimana' => '0|1|2',
		'giorni_settimana' => '0|1',
		'finesettimana_mese' => '0|1',
		'chiamata' => '0|1',
		'tredici_ore' => '0|1',
		'intervallo_turno' => '0|1',
		'lavoro_riposo_ferie' => '0|1',
		'lavoro_malato' => '0|1',
		'velocita_lavoro' => '1|2|3|4',
		'impegno_mentale' => '1|2|3|4',
		'lavoro_eccessivo' => '1|2|3|4',
		'tempo_insufficiente' => '1|2|3|4',
		'richieste_contrastanti' => '1|2|3|4',
		'concentrazione' => '1|2|3|4',
		'compiti_interrotti' => '1|2|3|4',
		'lavoro_frenetico' => '1|2|3|4',
		'attesa_lavoro_altrui' => '1|2|3|4',
		'intenso_sforzo_fisico' => '1|2|3|4',
		'attivita_rapida_costante' => '1|2|3|4',
		'carichi_pesanti' => '1|2|3|4',
		'posizioni_scomode_testa_braccia' => '1|2|3|4',
		'posizioni_scomode_corpo' => '1|2|3|4',
		'sollevare_da_piano' => '1|2|3|4',
		'sollevare_da_spalle' => '1|2|3|4',
		'posizione_non_eretta' => '1|2|3|4',
		'oggetti_pesanti' => '1|2|3|4',
		'posizione_statica' => '1|2|3|4',
		'movimenti_ripetitivi_mani' => '1|2|3|4',
		'pressione_mani' => '1|2|3|4',
		'relazioni_medici_infermieri' => '1|2|3|4',
		'condizioni_opinioni' => '1|2|3|4',
		'tempo_suporto_pazienti' => '1|2|3|4',
		'controllo_spesa' => '1|2|3|4',
		'partecipazione_acquisto' => '1|2|3|4',
		'capo_considerazioni' => '1|2|3|4',
		'capo_sopprime_giudizi' => '1|2|3|4',
		'capo_gentilezza' => '1|2|3|4',
		'capo_interesse' => '1|2|3|4',
		'capo_bene' => '1|2|3|4',
		'colleghi_disponibili' => '1|2|3|4',
		'colleghi_aiuto' => '1|2|3|4',
		'procedure_valide' => '1|2|3|4',
		'procedure_assenza_errori' => '1|2|3|4',
		'personale_liberta_espressione' => '1|2|3|4',
		'sicurezza_costi' => '1|2|3|4',
		'sicurezza_lavoro' => '1|2|3|4',
		'sicurezza_decisioni_qualificati' => '1|2|3|4',
		'soddisfazione' => '1|2|3|4'
		);
		
		//errors
		private $errors =  array();
		
		public function getErrors() {
			return $this->errors;
		}
		
		public function setErrors($errors) {
			$this->errors=$errors;
		}
		
		public function getLabels() {
			return $this->labels;
		}
		
		public function getLabel($key) {
			return $this->labels[$key];
		}

		public function getValue($key) {
			// TODO  vedere meglio
			$var = get_object_vars($this);
			return $var[$key];
		}

		public function isValid($key) {
			$res = 0;
			if (!isset($this->validate[$key])||$this->validate[$key]=='')
				return true;
			else if (isset($this->$key) &&  $this->$key!='') {
				$pattern = "/^".$this->validate[$key]."$/";
				$res = preg_match($pattern, $this->$key);
			}else 
				return false;
			return ($res>0)?true:false;
		}

		public function offsetExists($offset) {
			return isset($this->$offset);
		}

		public function offsetGet($offset) {
			return $this->$offset;
		}

		public function offsetSet($offset , $value) {
			$this->$offset = $value;
		}

		public function offsetUnset($offset) {
			unset($this->$offset);
		}

}

?>